// Package _69__多数元素 main
// @Title _69__多数元素
// @Description
// @Author  == 琳琳也叫王木木 ==  2022-03-03 10:44
// @Create  2022-03-03 10:44
package main

import (
	"fmt"
	"sort"
)

// 使用哈希表 这是最low的一种解法
func majorityElement(nums []int) int {
	var ans int
	hashMap := make(map[int]int, 0)
	count := len(nums)
	for i := 0; i < count; i++ {
		hashMap[nums[i]] += 1
	}
	for i, k := range hashMap {
		if k > count/2 {
			return i
		}
	}
	return ans
}

// 排序数组，那么n/2对应的下标一定是众数
func majorityElementSort(nums []int) int {
	if len(nums) == 0 {
		return 0
	}
	sort.Ints(nums)
	return nums[len(nums)/2]
}

func main() {
	fmt.Println(majorityElement([]int{6, 5, 5}))
	fmt.Println(majorityElementSort([]int{6, 5, 5}))
}
